<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>二面</title>
  <style>
    #ev{
      width:200px;
      height:200px;
      background:lightcoral;
    }
  </style>
</head>
<body>
  <div id="ev"></div>
  <script>
    // e.preventDefault() 
    // 阻止默认行为
    // false 冒泡  true捕获
    var ev = document.getElementById("ev")
    ev.addEventListener('click', function(){
      console.log('ev captrue')
    }, true)
    window.addEventListener('click', function(){
      console.log('window captrue')
    }, true)
    document.addEventListener('click', function(){
      console.log('document captrue')
    }, true)
    document.documentElement.addEventListener('click', function(){
      console.log('html captrue')
    }, true)

    // 自定义事件
    var eve = new Event('test')
    ev.addEventListener('test', function(){
      console.log('test dispatch')
    })
    ev.dispatchEvent(eve)

    var p = {name: 'p'}
    var o4 = Object.create(p)
    console.log(o4)

    function M(name){this.name = name;}
    var m = new M('zhangsan')
    console.log(m.__proto__ == M.prototype)
    function shopCar(){
      var list = []
      this.add=function(obj){
        list.push(obj)
      }
      this.del=function(obj){
        list.pop()
      }
    }
    shopCar.prototype = m
    var car = new shopCar()
    car.add({shop: 'kele'})
    console.log(M.prototype.__proto__ === Object.prototype)
    console.log(car.__proto__.constructor == shopCar)
    console.log(car)
    // 如果构造函数没有返回对象，则这个对象取代new出来的结果
    var new2 = function(func){
      var o = Object.create(func.prototype)
      var k = func.call(o)
      if(typeof k === 'object'){
        return k
      } else {
        return o
      }
    }
    console.log('-------面向对象--------')

    function Animal(){
      this.name = 'name'
    }
    // ES6中的声明
    class Animal2{
      constructor(name){
        this.name = 'name'
      }
    }
    // 实例化类的对象
    console.log(new Animal(), new Animal2())
    // 继承 借助构造函数实现继承 无法继承原型的方法
    function Parent1(){
      this.name = 'parent1'
    }
    Parent1.prototype.say = function(){
      console.log(this.name)
    }
    function Child1(){
      this.type = 'child1'
      Parent1.call(this)
    }
    
    console.log(new Child1())

    // 借助原型链实现继承
    console.log('---------原型链继承--------')
    function Parent2(){
      this.name = 'parent2'
      this.play = [1,2,3]
    }
    function Child2(){
      this.type = 'child2'
    }
    Child2.prototype = new Parent2()
    var s1 = new Child2()
    var s2 = new Child2()
    s1.play.push(4)
    console.log(s1.play, s2.play)
    // 组合方式
    function Parent3(){
      this.name = 'parent3'
      this.play = [1,2,3]
    }
    function Child3(){
      this.type = 'child3'
      Parent3.call(this)
    }
    Child3.prototype = new Parent3()
    var s3 = new Child3()
    /**
     * gongsi zhiyou weishubuduo denansheng, ta de xuanze jihui bijiaoshao,
     * ruguo ta ningyuan dansheng yebuyao xuanze ni, ziliandianshuo taduini 
     * youyidian haogan, shenme qingkuangxia ta huixuanze jixu dansheng ye 
     * buyao xuanze ni, genni zaiyiqi haiburu yangtiaogou guangtaobao shua
     * douyin taobao douyin tuijian de doushi ta xihuan de, 1 erni shuohua he
     * xingwei biaoxian meiyou nige ta xihuande, 2 ni biaoxian meiyou nanren 
     * qiangshi zhujia xianggenvsheng shengmenqi dailing chengshu zuorenheshi 
     * shuorenhehua douyao fuze, 3 zeren zhaoguta zuihaodegeita renzhenduidai
     * chixuduitahao gengjia yonggan 
     * 
     * yigenvsheng heni kandianying chifan guanxi yinggai gengjinyibu
     * guanxi yueqinmi zeren yueda 
     * 
     * weishenme ni zuoshenme doushi cuowu de nixiangdeai chaojishou meiyoulequ
     * genniliaotian xiaoshi baikaishui meiyouyisi weidao qingxu meiyou yisi qifu
     * nidei you ziji de shenghuo heni zaiyiqi 
     * 
     * 
     * huanweisikao genni liaotian haiburu guangtaobao shuadouyin taobao dongta
     * ni budongta taobao geita zhanxiande doushi ta xihuande heni liaotian meiyou
     * yiju shi ta xihuande 
     * 
     * 
     * 情绪会感染
     *    检查自己是否轻松愉快，如果不是就不用说话了
     *    好玩的事，
     * 我其实不太确定对你而言，我算是你最好的朋友吗，你好像从来没有跟我讲过，
     * 所以我一直都有点怀疑，不擅长表达感情，我差点弄丢了这个朋友，
     * 如果那时我们累了就说累了，痛了就说痛了，就好了
     * 我们无形中在周边设置了一道屏障，让重要的人挡在了外面，让他们感受不到，
     * 参与感，被爱，被想念，被需要，最后彼此渐行渐远
     * 打动ta一次，再让ta觉得你安全
     * 感受到被爱
     * 应该主动经营这段ganqing，
     *
     * 表现好和不好
          不好，下班没等ta，没有主动找话题，尴尬紧张的气氛，
          好，车上聊的来，主动找话题，愉快轻松的氛围，
     */
    /**
     * 面试
     *    公司：安排出合适的时间，合适的人员对你面试，
     *    面试者：在约定的时间到达地点，认真对待面试的过程，
     * 追求
     *    nv: 给你表现的机会，反馈你的表现，
     *    ni: 认真对待ta，和这份感情，持续对ta好
     * 过去我不知道什么是责任，说着肆无忌惮的话，从未想过对自己的行为负责
     * 周六你们走一路说了几个小时，你现在还记得你们说了什么，你现在还关心昨天说的事情吗
     * 连续两周的同行，你还记得你们聊过什么吗
     * 说什么不重要，因为很快就会忘掉，感觉比较重要
     * 
     */ 
    /*
      多进程-C
      多线程-java
      异步IO-js
      携程-lua go
      js核心语法部分
      前端BOM DOM
      后端 fs http buffer event os
    */

  </script>
  <script>
    /**
     * 多交流，说什么不重要，保持心情愉悦和放松
     * 有人站出来为你说话，有人能替你做决定，不喜欢做决定，
     * 有人能主动说话，打破僵局，最好是幽默有趣的事情
     * 可不可以强势一点，让ta听你的，不要征求ta同意
     * 被怕犯错
     * 笑笑不说话，让ta以为你对ta说的话题不感兴趣，
     * 在领募医学部待时间长了，接触的癌症多了，自己身上一个黑点都能
     * 联想多黑色素瘤
     * 复述一下问题，并幽默的举例



      有野心
      有目标
      寻找到达目标最短方法
      控制不住自己情绪，让别人感到不舒服--情商低

     */
  </script>
</body>
</html>